package ik.xcj.hostpital.manage.service;

import com.github.pagehelper.PageInfo;
import ik.xcj.hostpital.manage.pojo.dto.OrderInfoAddNewDTO;
import ik.xcj.hostpital.manage.pojo.dto.OrderInfoUpdateDTO;
import ik.xcj.hostpital.manage.pojo.vo.OrderCountQueryVo;
import ik.xcj.hostpital.manage.pojo.vo.OrderListItemInfoVO;
import ik.xcj.hostpital.manage.pojo.vo.OrderMqVo;
import ik.xcj.hostpital.manage.pojo.vo.OrderStandardInfoVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Map;

@Transactional
public interface IOrderInfoService {
    /**
     * 添加订单
     *
     * @param orderInfoAddNewDTO 新的订单数据
     */
    void addNew(OrderInfoAddNewDTO orderInfoAddNewDTO);

    /**
     * 根据id删除订单
     *
     * @param id 用户id
     */
    void deleteById(Long id);

    /**
     * 修改订单详情
     *
     * @param id             被修改的用户的订单id
     * @param orderInfoAddNewDTO 封装了新数据的对象
     */
    void updateInfoById(Long id, OrderInfoUpdateDTO orderInfoAddNewDTO);
    /**
     * 根据id获取属性的标准信息
     *
     * @param id 属性id
     * @return 返回匹配的属性的标准信息，如果没有匹配的数据，将返回null
     */
    OrderStandardInfoVO getStandardById(Long id);
    /**
     * 查询订单数据列表
     *
     * @return 订单数据列表
     */
    PageInfo<OrderListItemInfoVO> list(Integer page, Integer pageSize);
    /**
     * 订单统计
     */
    Map<String, Object> getCountMap(OrderCountQueryVo orderCountQueryVo);

    List<OrderMqVo>  OrderMqList();
}
